MySQL内置函数学习笔记

249次阅读
没有评论

共计 2887 个字符,预计需要花费 8 分钟才能阅读完成。

字符串相关

在 MySQL 中,字符串既可以使用双引号也可以使用单引号,但 建议使用单引号,因为单引号属于标准 SQL。

upper():转大写,转小写是 lower()

  • SELECT UPPER(‘abc’);
  • ABC

length():获取字节长度

  • SELECT LENGTH(‘ 张三 123’);
  • 9

char_length():获取字符个数

  • SELECT CHAR_LENGTH(‘ 张三 123’);
  • 5

concat():字符串拼接,MySQL8 之后,||只作为逻辑运算符使用,也不可以使用 + 进行字符串拼接

  • select concat(‘123’, ‘abc’);
  • 123abc

lpad():左填充,右填充为 rpad()

  • select lpad(‘abc’, 5, ‘-‘);
  • –abc

trim():去除首尾空白,也可去除指定的前缀后缀

  • select trim(‘ abc 123 ‘);
  • abc 123
  • select trim(leading ‘0’ from ‘000111000’); — 111000
  • select trim(trailing ‘0’ from ‘000111000’); — 000111
  • select trim(both ‘0’ from ‘000111000’); — 111

substr():截取字符串

  • select substr(‘abc123’, 2, 3);
  • bc1

数值相关

ceil():向上取整,向下取整是 floor()

  • select ceil(1.5); — 2

truncate():舍去

  • select TRUNCATE(6.666, 2); — 6.66

mod():取余

  • select mod(7, 4); — 3

round():四舍五入

  • select round(3.14159, 2); — 3.14

rand():0- 1 内随机浮点数,通过指定整数每次获取到相同的浮点值

  • select rand();
  • select rand(100);

日期时间相关

curdate():获取当前日期

  • select curdate(); — 2024-05-17

curtime():获取当前时间
— select curtime(); — 13:21:21

now():执行 select 语句的时刻。sysdate()获取的是执行 sysdate()函数的时刻。

  • select now();

year():获取年,月 month(),日 day(),时 hour(),分 minute(),秒 second()

  • select year(now()); — 2024

dayofweek():一周中第几天(1~7),周日是 1,周六是 7。dayofmonth()一个月中第几天(1~31),dayofyear()一年中第几天(1~366)

  • select dayofweek(now()); — 6 周五

last_day():获取给定日期所在月最后一天日期

  • select last_day(NOW()); — 2024-05-31

date():一次性提取一个给定日期的“年月日”部分,一次性提取一个给定日期的“时分秒”部分使用 time()

  • select date(NOW()); — 2024-05-17
  • select time(NOW()); — 11:30:10

date_add():向日期添加指定的时间间隔。date_add(日期, interval expr 单位):

  • expr:指定具体间隔量,一般是一个数字。也可以为负数,如果为负数,效果和 date_sub 函数相同
  • 单位:year 年、month 月、day 日、hour 时、minute 分、second 秒、microsecond 微秒、week 周、quarter 季度
  • select date_add(now(), interval 3 day); — 2024-05-20 11:32:25
  • 单位也可以采用复合型单位,例如:SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND 几分几秒之后、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE 几小时几分之后、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR 几天几小时之后、YEAR_MONTH 几年几个月之后
  • select date_add(now(), INTERVAL ‘3,2’ day_hour); — 3 天 2 小时之后

datediff():两个日期之间所差天数

  • select datediff(now(), ‘2024-05-10’); — 7

timediff():两个日期之间所差时间

  • select timediff(‘2024-05-10 10:10:10’, ‘2024-05-10 10:00:00’); — 00:10:10

date_format():日期格式化,默认日期格式:%Y-%m-%d %H:%i:%s,%y 两位年份,%h 是 12 小时制

  • select date_format(NOW(), ‘%Y-%m-%d %H:%i:%s’); — 2024-05-17 12:28:05

str_to_date():将 char 类型日期字符串转换成日期类型 date

  • select str_to_date(’10/01/1985′, ‘%m/%d/%Y’); — 1985-10-01

流程函数

if()

  • select if(true, ‘ok’, ‘no ok’); — ok

ifnull(x, y):空处理函数,当 x 为 NULL 时,将 x 当做 y 处理。有 NULL 参与的数学运算,最终结果都是 NULL,此时就需要 ifnull 函数进行空处理

  • select ifnull(null, ‘ 是 null’); — 是 null

case

  • select name, case gender when ‘ 男 ’ then 1 when ‘ 女 ’ then 2 else ‘ 变态 ’ end as ‘ 性别 ’ from user;
  • select name, case when gender=’ 男 ’ then 1 when gender=’ 女 ’ then 2 else ‘ 变态 ’ end as ‘ 性别 ’ from user;

cast 函数

用于将值从一种数据类型转换为另一种数据类型,语法:cast(值 as 数据类型)。

  • select cast(‘2020-10-11’ as DATE);

加密函数

md5()将给定字符串经过 md5 算法进行加密处理,生成一个固定长度 32 位字符串

  • select md5(‘abc’);

分组函数

分组函数执行原则:先分组,然后对每一组数据执行分组函数。如果没有分组语句 group by 的话,整张表的数据自成一组。所有分组函数都是自动忽略 NULL 的。

substring_index()

  • select substring_index(‘ab-c-de-fg’, ‘-‘, 1); — ab
  • select substring_index(‘ab-c-de-fg’, ‘-‘, 2); — ab-c

group_concat():行转列,默认逗号分隔

  • select group_concat(user separator ‘-‘) from mysql.user; — 按 - 分隔
  • select group_concat(user order by id desc) from mysql.user;
正文完
 0
阿伯手记
版权声明:本站原创文章,由 阿伯手记 于2024-05-17发表,共计2887字。
转载说明:本站原创内容,除特殊说明外,均基于 CC BY-NC-SA 4.0 协议发布,转载须注明出处与链接。
评论(没有评论)
验证码

阿伯手记

阿伯手记
阿伯手记
喜欢编程,头发渐稀;成长路上,宝藏满地
文章数
766
评论数
204
阅读量
449508
今日一言
-「
热门文章
职场救急!AI请假话术生成器:1秒定制高通过率理由

职场救急!AI请假话术生成器:1秒定制高通过率理由

超级借口 不好开口?借口交给我!智能生成工作请假、上学请假、饭局爽约、约会拒绝、邀约推辞、万能借口等各种借口理...
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

本文收集了目前国内已部署 DeepSeek 模型的第三方列表,个个都是免费不限次数的满血版 DeepSeek,...
巴别英语:用美剧和TED演讲轻松提升英语听力与口语

巴别英语:用美剧和TED演讲轻松提升英语听力与口语

还在为枯燥的英语学习而烦恼吗?巴别英语通过创新的美剧学习模式,让英语学习变得生动有趣。平台提供海量美剧和 TE...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
TVAPP:开源电视盒子资源库,一键打造家庭影院

TVAPP:开源电视盒子资源库,一键打造家庭影院

导语 TVAPP 是一个专为 Android TV 电视盒子用户打造的开源影音资源库,集成了影视、直播、游戏等...
2025年12月 每日精选

2025年12月 每日精选

关于每日精选栏目 发现一些不错的资源,点击 这里 快速投稿。 12 月 26 日 .ax 顶级域 目前全球唯一...
最新评论
15220202929 15220202929 怎么用
八对 八对 麻烦大佬更新下【堆新】的友链站名:八对星星描述:极目星视穹苍无界•足履行者大地有疆链接:https://8dui.com图标:https://cf.8dui.com/logo.webp横标:https://cf.8dui.com/logo-w.webp订阅:https://8dui.com/rss.xml
三毛笔记 三毛笔记 已添加
DUINEW DUINEW 已添加贵站,期待贵站友链~博客名称:堆新博客地址:https://duinew.com/博客描述:堆新堆新,引力向新!——堆新(DUINEW)博客头像:https://d.duinew.com/logo.webp横版头像:https://d.duinew.com/logo-w.webp博客订阅:https://duinew.com/rss.xml
hedp hedp 没看懂
bingo bingo 直接生成就可以啦,也可以添加一些选项
满心 满心 申请更新下友联信息,原名:满心记,现名:周天记原域名:qq.mba,现域名:zhoutian.com描述:我在人间混日子
开业吉日 开业吉日 没看明白这个怎么用
开业吉日 开业吉日 beddystories 这个网站太赞了,收藏
热评文章
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
清华大学官方免费DeepSeek教程

清华大学官方免费DeepSeek教程

AI 领域近期最引人注目的焦点当属 DeepSeek,这款由中国创新企业深度求索研发的人工智能工具,正以开放源...
Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 是一款基于 Fastify、Vercel 和 Supabase 构建的 URL 缩短服务...
国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

本文收集了目前国内已部署 DeepSeek 模型的第三方列表,个个都是免费不限次数的满血版 DeepSeek,...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
BeddyStories 完全免费儿童睡前故事库,让孩子随时随地入睡更轻松

BeddyStories 完全免费儿童睡前故事库,让孩子随时随地入睡更轻松

BeddyStories 是一个致力于为儿童提供优质睡前故事的在线平台,用户可以在这里找到来自世界各地的经典故...
DrawLink:一键生成链接视觉卡片,提升分享点击率

DrawLink:一键生成链接视觉卡片,提升分享点击率

小贴士 :此站或已变迁,但探索不止步。我们已为您备好「类似网站」精选合集,相信其中的发现同样能为您带来惊喜。